# 二，编写一个Bill类，要求：
class Bill(object):
    '''
    Bill class
    '''

    '''
    A string
    '''

    # （1）添加对象属性：unit，商品单价。
    # （2）添加对象属性：num，商品数量。
    # （3）添加对象属性：price，商品总价格。
    def __init__(self, unit=0, num=0, price=0):
        '''
        Init method.
        :param unit:
        :param num:
        :param price:
        '''
        self.unit = unit
        self.num = num
        self.price = price

    # 2．添加对象方法getUnit：（1分）
    # （1）从终端输入一个商品的单价，要有提示。
    # （2）将商品单价保存到对象属性unit中。
    def getUnit(self):
        unit = float(input('请输入商品的单价：'))
        self.unit = unit

    # 3．添加对象方法getNumber：（1分）
    # （1）从终端输入一个商品的的数量，要有提示。
    # （2）将商品的数量保存到对象属性num中。
    def getNumber(self):
        num = int(input('请输入商品的数量：'))
        self.num = num

    # 4．添加对象方法discount，在该方法中对传递过来的价格进行打折处理。（2分）
    #     # 对象方法名：discount
    #     # 参数：price,消费总金额。
    #     # 返回值：打折后的消费总金额，默认不打折。
    #     # 功能介绍：
    #     #   在调用该方法时，需要传递一个参数price（消费的总金额）。
    # #   在该函数中对price进行打折处理，默认不打折。
    # （1）提示，如果不打折，直接返回消费的总金额。
    # （2）提示，如果打折，将消费总金额乘以相应的折扣，注意折扣应该是浮点型。
    def discount(self, price):
        xin = input('打折多少？（请输入折扣百分比，直接回车不打折）：').strip()
        if 0 == len(xin):
            return price
        dis = float(xin)
        return price * dis

    # 5．添加对象方法getPrice，公有权限：（1分）
    # （1）根据商品单价、商品数量得到总消费金额。
    # ①提示，需要调用对象方法获得商品单价和数量。
    # （2）将消费的总金额保存到对象属性price中。
    def getPrice(self):
        self.getUnit()
        self.getNumber()
        xprice = self.unit * self.num
        self.price = xprice
        return xprice


# 6．添加主程序入口，完成如下任务：（3分）
if '__main__' == __name__:

    print(Bill.__doc__)
    print(Bill.__init__.__doc__)

    # （1）创建Bill对象。
    bill = Bill()

    # （2）调用对象方法getPrice，并接收方法的返回值。
    price = bill.getPrice()

    # （3）使用格式化函数和输出函数显示本次消费总金额。
    print(f'本次消费总金额：{price:,.2f}')
